{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "c7ea7011-9a9b-427a-9d10-6905ae5e11e9",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\wangyifan\\AppData\\Local\\Temp\\ipykernel_2664\\940558751.py:46: UserWarning: Implicit dimension choice for softmax has been deprecated. Change the call to include dim=X as an argument.\n",
      "  x_layer = F.softmax(x_layer)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.1]\n",
      "[0.1]\n",
      "[0.1]\n",
      "[0.1]\n",
      "[0.010000000000000002]\n",
      "[0.010000000000000002]\n",
      "[0.010000000000000002]\n",
      "[0.010000000000000002]\n",
      "[0.010000000000000002]\n",
      "[0.0010000000000000002]\n",
      "time is 0:00:19.678746 s\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGwCAYAAABVdURTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABKnklEQVR4nO3deViU5cI/8O+wzDAgjCLKomwuiYaR4gpa2WKZttlCebLlaCdPi5mVubx1ylNideq1Xpdz2vTYafFXmtXRTMzcwlwQFPdUNnUUQZxRQBDm/v1BMzIwKz7zPDDz/VwX1wXPc8/MPc/AzJd7VQkhBIiIiIi8hJ/SFSAiIiKSEsMNEREReRWGGyIiIvIqDDdERETkVRhuiIiIyKsw3BAREZFXYbghIiIirxKgdAXkZjKZcPLkSYSGhkKlUildHSIiInKBEALnz59HTEwM/Pwct834XLg5efIkYmNjla4GERERtUBJSQm6du3qsIzPhZvQ0FAADRcnLCxM4doQERGRK4xGI2JjYy2f4474XLgxd0WFhYUx3BAREbUxrgwp4YBiIiIi8ioMN0RERORVGG6IiIjIqzDcEBERkVdhuCEiIiKvwnBDREREXoXhhoiIiLwKww0RERF5FYYbIiIi8ioMN0RERORVFA03mzZtwh133IGYmBioVCqsXLnSYXm9Xo9x48ahV69e8PPzw5QpU2SpJxEREbUdioabyspKpKSkYP78+S6Vr6mpQadOnTBr1iykpKR4uHbuu2/hr0iYvgo9Z67C69/tVbo6REREPkklhBBKVwJo2Ajr22+/xd133+1S+RtuuAHXXnst5s2b57BcTU0NampqLD+bdxU1GAySbpyZMH1Vs2NqfxUOv3m7ZI9BRETkq4xGI3Q6nUuf314/5iYzMxM6nc7yFRsbK/lj3LfwV5vHa+sFW3CIiIhk5vXhZsaMGTAYDJavkpISyR9j9/Fzds99uaNI8scjIiIi+wKUroCnaTQaaDQajz5GStf22Fl8zuY5YfLoQxMREVETXt9yI4dvnkq3e65PjE7GmhARERHDjUQeT0+webxffAd5K0JEROTjFO2WunDhAo4cOWL5uaCgAHl5eQgPD0dcXBxmzJiBEydOYOnSpZYyeXl5ltueOXMGeXl5UKvV6NOnj9zVt9ItIsTm8bOVtTLXhIiIyLcpGm527tyJESNGWH6eOnUqAODRRx/FkiVLoNfrUVxcbHWbfv36Wb7PycnBF198gfj4eBQWFspSZ3ti2gfZPP797pN4eVQSonVamWtERETkmxQNNzfccAMcLbOzZMmSZsdaybI8zRwrq7R53CSAwrIqhhsiIiKZcMyNRAYlhNs8rgKQEBEsb2WIiIh8GMONRFJiO2BUcpTS1SAiIvJ5DDcSGj80vtkxgYZuKSIiIpIHw42EEm3MmGK3FBERkbwYbjxNpXQFiIiIfAvDjYQKbMyYEoLdUkRERHJiuJGQrW4pgN1SREREcmK4kVCp8aJbx4mIiEh6DDcS2l541ubxnYUVMteEiIjIdzHcSMjeQn4DErh5JhERkVwYbiTUOcz2/lL2jhMREZH0GG4kZGu2FMDZUkRERHJiuJFQiNrf5vFgNS8zERGRXPipK6HK2nqbx6tqTTLXhIiIyHcx3EgoMSIEqiYrEvurVFznhoiISEYMNxKK1mnx1+u7W372V6kwZ2wyonVaBWtFRETkWxhuJDby6igAQEQ7NbZMH4GMgXEK14iIiMi3MNxIzO+PbilNgD9bbIiIiBTAcCMxvz8G3ZiEULgmREREvonhxkMYboiIiJTBcCMxc8sNsw0REZEyGG4k5vfHFTUx3BARESmC4UZi5pab2rp66A3VCteGiIjI9zDcSOynvXoAgPFiHdLnrseyHcUK14iIiMi3MNxISG+oxv+u+93ys0kAM1fsZQsOERGRjBhuJFRQVtlsrE29ENwVnIiISEYMNxJKjAixLOJnxr2liIiI5MVwI6FonRYj+0RaHbu7XwxXKiYiIpIRw42E9IZqrN1/2urYytyTHHNDREQkI4YbCXHMDRERkfIYbiTEMTdERETKY7iRULROi5dvS7L87Adg2m29OOaGiIhIRgw3Ervz2hjL9yYAb605yIX8iIiIZMRwI7HPf7MOMlzIj4iISF4MNxLSG6qx4JcjzY5zUDEREZF8GG4kVFBWCVubgfupwEHFREREMmG4kZCt2VIA8PKoJA4qJiIikgnDjYSidVrMvL231bFbekfiyeu6K1QjIiIi38Nw42GVtXUcTExERCQjhhsJ6Q3VmLP6gNWx7KPlSJ+7ntPBiYiIZMJwIyFb2y8AnA5OREQkJ4YbCSVGhMDGeGIAnA5OREQkF4YbmXCPKSIiInkw3EjI0To3c8Ymczo4ERGRDAKUroA3MXdLNQ043z6VhpTYDkpUiYiIyOew5UYGvxWcVboKREREPoPhRkL2uqXe+vEgZ0oRERHJhOFGQvZmS5kEOFOKiIhIJgw3EorWaTG8R4TNc8FqXmoiIiI58BNXQnpDNTYdKbN5rqrWJHNtiIiIfJOi4WbTpk244447EBMTA5VKhZUrVzq9zcaNG5GamoqgoCB069YN//znPz1fURflFFXYPO6nAte4ISIikomi4aayshIpKSmYP3++S+ULCgpw++23Y/jw4cjNzcXMmTMxefJkLF++3MM1dU1FVa3N43emxHCNGyIiIpkous7NqFGjMGrUKJfL//Of/0RcXBzmzZsHAOjduzd27tyJf/zjH7j33ns9VEvXCWFrrhSQGs81boiIiOTSpsbcbN26FSNHjrQ6duutt2Lnzp24dOmSzdvU1NTAaDRafXlKeIjGznG1xx6TiIiIrLWpcHPq1ClERkZaHYuMjERdXR3KymwP5M3MzIROp7N8xcbGeqx+9lpo+rPlhoiISDZtKtwAgEplvZKMuSuo6XGzGTNmwGAwWL5KSko8Wz8bx77ffdKjj0lERESXtalwExUVhVOnTlkdKy0tRUBAADp27GjzNhqNBmFhYVZfnsIViomIiJTXpsLN0KFDkZWVZXVs7dq1GDBgAAIDAxWq1WVcoZiIiEh5ioabCxcuIC8vD3l5eQAapnrn5eWhuLgYQEOX0iOPPGIpP2nSJBQVFWHq1Kk4cOAAPv30U3zyySd48cUXlah+M9E6LW5Ljmp2XAWuc0NERCQXRaeC79y5EyNGjLD8PHXqVADAo48+iiVLlkCv11uCDgAkJiZi9erVeP7557FgwQLExMTggw8+aBXTwIGGFYrX7D3V7LjtCeJERETkCSphb3EWL2U0GqHT6WAwGCQff5N9tAzjPtpm89yCcf0w+poYSR+PiIjIV7jz+d2mxty0dokRIXbP+VaEJCIiUg7DjYSidVrMGJXU7LgKQGoC17ohIiKSA8ONxJ68vnuzY3Pv7cu9pYiIiGTCcCODjIFxSleBiIjIZzDcyGDZjmLnhYiIiEgSDDcSs7US8cwVe7lCMRERkUwYbiRWUFbZ7Fi9EMgprFCgNkRERL6H4UZi9qaDP/tlLruniIiIZMBwIzF7s6IEgBkr8tk9RURE5GEMNxJzFF64gSYREZHnMdxIzNaYGzM/FTfQJCIi8jSGG4k52oLh5VFJXMyPiIjIwxhuJOYovFzTpb18FSEiIvJRDDcSszfmhl1SRERE8mC4kZi9MTcPDoxjlxQREZEMGG4kln/cYPP4VzuKuc4NERGRDBhuJKQ3VOOtNQdtnjMJbsNAREQkB4YbCRWUVcIk7J+vF4Lr3BAREXkYw42EEiNC4Keyf56DiomIiDyP4UZC0TotMsf2tXv+qRu6c1AxERGRhzHcSCxjYJzdc72jw2SsCRERkW9iuJHY7pIKu+eEg/E4REREJA2GG4ltLzxr91xqQgcZa0JEROSbGG4kNigh3O65TYfPyFgTIiIi38RwI7GUWPutM9NX5HOdGyIiIg9juJGYo/AiBLCryP6YHCIiIrpyDDcSy3ESXjiomIiIyLMYbiQmHKQXFTiomIiIyNMYbiR28txFu+eeHsFF/IiIiDyN4UZCjjbOBID0Hp1krA0REZFvYriRkLONM7mvFBERkecx3EjI2caZRERE5HkMNxJytnFmTiGngRMREXkaw43EHG2cqWKrDhERkccx3MgoKJCXm4iIyNP4aSujb3edVLoKREREXo/hRkar8vXcW4qIiMjDGG5kJAAs3lKodDWIiIi8GsONxJy1zHy85Rhbb4iIiDyI4UZiBWWVDs+bBFBYViVTbYiIiHwPw43EQtT+Ds/7q1RcqZiIiMiDGG4ktvv4Obvn/FTAnLHJ3DyTiIjIgwKUroC3KbtQa/fc4scG4vpenWWsDRERke9hy43EUrrq7J57fMkOLNtRLGNtiIiIfA/DjcSqL5nsnjMJYOaKvZwtRURE5EEMNxITQjg8Xy8EZ0sRERF5EMONxAYkhDstE6zmZSciIvIUfspKLFqnRRddkMMyVbX2u66IiIjoyjDceECIxv4kND8VuM4NERGRBzHceECUg5abO1NiuM4NERGRBzHceECHELXdcwMSOshYEyIiIt+jeLhZuHAhEhMTERQUhNTUVGzevNlh+QULFqB3797QarXo1asXli5dKlNNpfHKd/u41g0REZEHKRpuli1bhilTpmDWrFnIzc3F8OHDMWrUKBQX2/7wX7RoEWbMmIHXXnsN+/btw+uvv46nn34aP/zwg8w1d0zl4JzgWjdEREQepWi4ee+99zBhwgRMnDgRvXv3xrx58xAbG4tFixbZLP/ZZ5/hySefREZGBrp164YHH3wQEyZMwFtvvWX3MWpqamA0Gq2+lMa1boiIiDxHsXBTW1uLnJwcjBw50ur4yJEjkZ2dbfM2NTU1CAqyHqyr1Wqxfft2XLp0yeZtMjMzodPpLF+xsbHSPAEHVCpHbTecMUVERORJioWbsrIy1NfXIzIy0up4ZGQkTp06ZfM2t956Kz7++GPk5ORACIGdO3fi008/xaVLl1BWVmbzNjNmzIDBYLB8lZSUSP5c3PXyqCTOmCIiIvIQxXcFb9rKIYSw2/Lxyiuv4NSpUxgyZAiEEIiMjMRjjz2Gt99+G/7+/jZvo9FooNFoJK93Sz09ojuevK670tUgIiLyWoq13ERERMDf379ZK01paWmz1hwzrVaLTz/9FFVVVSgsLERxcTESEhIQGhqKiIgIOartkuraervnHh4Sj+yjZRxQTERE5CGKhRu1Wo3U1FRkZWVZHc/KykJaWprD2wYGBqJr167w9/fHV199hTFjxsDPT/FZ7RaVNXV2z6Vlrse4j7Yhfe56TgknIiLyAEW7paZOnYrx48djwIABGDp0KD788EMUFxdj0qRJABrGy5w4ccKyls3hw4exfft2DB48GBUVFXjvvfewd+9e/Pvf/1byaTTjaPsF857hpj+mhF93VSeOvyEiIpKQouEmIyMD5eXlmD17NvR6PZKTk7F69WrEx8cDAPR6vdWaN/X19Xj33Xdx6NAhBAYGYsSIEcjOzkZCQoJCz8AOx5OlLMxTwhluiIiIpKMSQgjnxbyH0WiETqeDwWBAWFiYRx5j/CfbsPl327O3GvNXqbBl+giGGyIiIifc+fxuPQNVvEg7B91SZn4qYM7YZAYbIiIiiSk+FdwbBaudX9YPHuyHMSkxMtSGiIjIt7DlxgOqau3PljJL5e7gREREHsFw4wGVLoSbTYfPyFATIiIi38Nw4wGujLnhzuBERESewXDjAa6MueHO4ERERJ7BcOMBhWWVTstwZ3AiIiLPYLiRmN5QjZ1FFU7LPTgwjtPAiYiIPIDhRmIFLrTaAEB6j44ergkREZFvYriRWGJECPxc2H6hawe22hAREXkCw43EonVaZI7t6/TCVtWaZKkPERGRr2G48YCMgXH49uk0h2WC1bz0REREnuD2J+y///1vrFq1yvLztGnT0L59e6SlpaGoqEjSyrVllbX1Ds+z5YaIiMgz3A43c+bMgVbbMF5k69atmD9/Pt5++21ERETg+eefl7yCbVViRIjD878e4QrFREREnuB2uCkpKUGPHj0AACtXrsR9992Hv/zlL8jMzMTmzZslr2Bb5Wya98INR7lCMRERkQe4HW7atWuH8vJyAMDatWtx8803AwCCgoJQXc0Pa1eZBLhCMRERkQc43yegiVtuuQUTJ05Ev379cPjwYYwePRoAsG/fPiQkJEhdP6/FFYqJiIg8w+2WmwULFmDo0KE4c+YMli9fjo4dGxajy8nJwUMPPSR5Bb3VbclRXKGYiIjIA1RCCKF0JeRkNBqh0+lgMBgQFhbmscdZtqMYLy/Pt3teBSB7xo0MOERERC5w5/Pb7ZabNWvWYMuWLZafFyxYgGuvvRbjxo1DRYXzPZV8gd5QjekOgg0ACAA5hbxeREREUnM73Lz00kswGo0AgPz8fLzwwgu4/fbbcezYMUydOlXyCrZFBWWVcKU5TOXCNg1ERETkHrcHFBcUFKBPnz4AgOXLl2PMmDGYM2cOdu3ahdtvv13yCrZFiREhUAEOA44KQP/4DjLViIiIyHe43XKjVqtRVdUwhXndunUYOXIkACA8PNzSouPronVazL23Lxw1zIzuG83xNkRERB7gdsvNsGHDMHXqVKSnp2P79u1YtmwZAODw4cPo2rWr5BVsqzIGxqFzqAaPL9lp8/w9/WNkrhEREZFvcLvlZv78+QgICMA333yDRYsWoUuXLgCAH3/8EbfddpvkFWzLqh3sL/XE0hws21EsY22IiIh8A6eCe1D+8XO4Y/6vds/7q1TYMn0Eu6eIiIiccOfz2+1uKQCor6/HypUrceDAAahUKvTu3Rt33XUX/P39W1Rhb7V232mH5+uFQGFZFcMNERGRhNwON0eOHMHtt9+OEydOoFevXhBC4PDhw4iNjcWqVavQvXt3T9SzzdEbqjH/lyMOy3ALBiIiIum5PeZm8uTJ6N69O0pKSrBr1y7k5uaiuLgYiYmJmDx5sifq2Ca5stbNy6OS2GpDREQkMbdbbjZu3IjffvsN4eHhlmMdO3bE3LlzkZ6eLmnl2jJX1rq5M4UzpoiIiKTmdsuNRqPB+fPnmx2/cOEC1Gq1JJXyBtE6LaaPSnJYhtsvEBERSc/tcDNmzBj85S9/wbZt2yCEgBACv/32GyZNmoQ777zTE3Vss5683vH4o6KzlTLVhIiIyHe4HW4++OADdO/eHUOHDkVQUBCCgoKQnp6OHj164P333/dEHb3WP346zLVuiIiIJOb2mJv27dvju+++w++//46DBw9CCIE+ffqgR48enqifVxMAZq7Yi+uu6sSBxURERBJp0To3ANCzZ0/07NlTyrr4JK51Q0REJC2Xws3UqVNdvsP33nuvxZXxRVzrhoiISFouhZvc3FyX7kylcrQPtu/RG6qdlnlwYBxbbYiIiCTkUrj55ZdfPF0Pr/R/P//utEzGQO6kTkREJCW3Z0uRa/SGanyxvcRpueMVzlt3iIiIyHUMNx5SUObaGja+tSc7ERGR5zHceIh5+wVnUhM6eLwuREREvoThxkOidVrMvbevwzIR7dQcTExERCQxt8PNpk2bUFdX1+x4XV0dNm3aJEmlvEXGwDhsnXEjxg2Ks3m+7EKtSzOqiIiIyHVuh5sRI0bg7NmzzY4bDAaMGDFCkkp5k2idFnPG2m/BKSyrkrE2RERE3s/tcCOEsLmeTXl5OUJCQiSplC/hAn5ERETScnn7hbFjxwJoWKjvscceg0ajsZyrr6/Hnj17kJaWJn0NiYiIiNzgcrjR6XQAGlpuQkNDodVeHgirVqsxZMgQPPHEE9LX0MvlFFZgTAoHFRMREUnF5XCzePFiAEBCQgJefPFFdkG5wdGgYe5YQUREJC23x9xMmzbNasxNUVER5s2bh7Vr10paMW/iaEG/rh3YakNERCQlt8PNXXfdhaVLlwIAzp07h0GDBuHdd9/FXXfdhUWLFkleQW8Qova3e66q1iRjTYiIiLyf2+Fm165dGD58OADgm2++QVRUFIqKirB06VJ88MEHbldg4cKFSExMRFBQEFJTU7F582aH5T///HOkpKQgODgY0dHRePzxx1FeXu7248qpxMH+Ub8eOSNjTYiIiLyf2+GmqqoKoaGhAIC1a9di7Nix8PPzw5AhQ1BUVOTWfS1btgxTpkzBrFmzkJubi+HDh2PUqFEoLi62WX7Lli145JFHMGHCBOzbtw9ff/01duzYgYkTJ7r7NGQlHGwgtXDDUS7kR0REJCG3w02PHj2wcuVKlJSU4KeffsLIkSMBAKWlpQgLC3Prvt577z1MmDABEydORO/evTFv3jzExsba7d767bffkJCQgMmTJyMxMRHDhg3Dk08+iZ07d7r7NGQ1ICHc7jmT4EJ+REREUnI73Lz66qt48cUXkZCQgEGDBmHo0KEAGlpx+vXr5/L91NbWIicnxxKOzEaOHIns7Gybt0lLS8Px48exevVqCCFw+vRpfPPNNxg9erTdx6mpqYHRaLT6kpuz/aOC1dzii4iISCpuf6red999KC4uxs6dO/HTTz9Zjt9000343//9X5fvp6ysDPX19YiMjLQ6HhkZiVOnTtm8TVpaGj7//HNkZGRArVYjKioK7du3x//93//ZfZzMzEzodDrLV2xsrMt1lAsHFRMREUmnRU0GUVFRCA0NRVZWFqqrG8aLDBw4EElJSW7fV9OtHOxt7wAA+/fvx+TJk/Hqq68iJycHa9asQUFBASZNmmT3/mfMmAGDwWD5KikpcbuOnqRScQsGIiIiKbm8iJ9ZeXk5HnjgAfzyyy9QqVT4/fff0a1bN0ycOBHt27fHu+++69L9REREwN/fv1krTWlpabPWHLPMzEykp6fjpZdeAgBcc801CAkJwfDhw/HGG28gOjq62W00Go3VVhGtzejkaKfdVkREROQ6t1tunn/+eQQGBqK4uBjBwZdbHDIyMrBmzRqX70etViM1NRVZWVlWx7OysuzuUVVVVQU/P+sq+/s3rCHjaEaS0hzNhrqnf4yMNSEiIvJ+brfcrF27Fj/99BO6du1qdbxnz55uTwWfOnUqxo8fjwEDBmDo0KH48MMPUVxcbOlmmjFjBk6cOGFZNPCOO+7AE088gUWLFuHWW2+FXq/HlClTMGjQIMTEtN6QsLPwrN1z245V4KbeUTLWhoiIyLu5HW4qKyutWmzMysrK3O7+ycjIQHl5OWbPng29Xo/k5GSsXr0a8fHxAAC9Xm+15s1jjz2G8+fPY/78+XjhhRfQvn173HjjjXjrrbfcfRqysjeGCAA+2nwMjw9LYNcUERGRRFTCzf6c0aNHo3///vj73/+O0NBQ7NmzB/Hx8XjwwQdhMpnwzTffeKqukjAajdDpdDAYDG6vy9NSekM1hmaut3t+/kP9MCal9bY8ERERKc2dz2+3W27eeecd3HDDDdi5cydqa2sxbdo07Nu3D2fPnsWvv/7a4kp7s2idFrEdtHa3Ydh6rJzhhoiISCJuDyju06cP9uzZg0GDBuGWW25BZWUlxo4di9zcXHTv3t0TdfQKseH2p3t/vq2YWzAQERFJxO2Wm+LiYsTGxuL111+3eS4uLk6SinmboED7O4MDwM8HTuPhIQnyVIaIiMiLud1yk5iYiDNnmu9kXV5ejsTEREkq5Y0Kyy44PH/sTKVMNSEiIvJubocbeysIX7hwAUFBQZJUytvoDdU45mRzzG6dQmSqDRERkXdzuVtq6tSpABqmNb/yyitW08Hr6+uxbds2XHvttZJX0BsUlDlvlbmpt+1VmYmIiMg9Loeb3NxcAA0tN/n5+VCr1ZZzarUaKSkpePHFF6WvoRdIjAiBCoC9OffPjOjOdW6IiIgk4nK4+eWXXwAAjz/+ON5//33Z1ojxBtE6LZ4YnogPNxfYPH9LH7baEBERScXtMTeLFy9msGmBx4fZH2x914JsvPD/8uSrDBERkRdzO9xQy0TrtIhop7Z7fvmuE/hsayHXuyEiIrpCDDcyaq8NdHj+le/2IX3ueizbUeywHBEREdnHcCOjS3Ump2VMApi5Yi9bcIiIiFqI4UZGru5QWi8ECp2si0NERES2MdzISB3g2uX2V6mQEGF/LyoiIiKyj+FGRqeMF52W8VepMGdsMte9ISIiaiG3N86kltldUoELNfVOy22ZPoLBhoiI6Aqw5UYm2wvPulSOwYaIiOjKMNzIZFBCuNJVICIi8gkMNzJJie2AUclRSleDiIjI6zHcyGj80Hilq0BEROT1GG5klBgRonQViIiIvB7DjYyidVo8lsbWGyIiIk9iuJFZ3y7tla4CERGRV2O4kdm/Nh1RugpERERejeFGRrtLKnD4dKXS1SAiIvJqDDcyWpl7QukqEBEReT2GG1mpnJbQG6plqAcREZH3YriR0d39YpyWKSyrkqEmRERE3ovhRkYpsR2QEqtzWGbPiXPyVIaIiMhLMdzI7LqeEQ7Pz119kF1TREREV4DhRmY39450eF4AyCmskKcyREREXojhRmYHT513WkblfNwxERER2cFwIyO9oRozVuQ7LKNSAf3jO8hUIyIiIu/DcCOjgrJKmITjMtNvS0K0TitPhYiIiLwQw42MXNkV/K01B7FsR7EMtSEiIvJODDcyitZp8fQN3R2WMQlg5oq9nDFFRETUQgw3Mnt4aLzTMvVCcDE/IiKiFmK4kVlBmfONM/1VKiREBMtQGyIiIu/DcCMzZ+NuVADmjE3moGIiIqIWYriRmbPQ0ic6FBkD42SqDRERkfdhuGll9unPY3cJVygmIiJqKYabVuiuBdn418ajSleDiIioTWK4aaUyfzyIf21iwCEiInIXw00r9taP3CGciIjIXQw3rZhJgOvdEBERuYnhphXjejdERETuY7iRmTvdTHf3i+F6N0RERG5iuJGZKysUm63MPckxN0RERG5iuJHZr7+XuVyWe0wRERG5j+FGRnpDNRZucH16N8fcEBERuU/xcLNw4UIkJiYiKCgIqamp2Lx5s92yjz32GFQqVbOvq6++WsYat1xBWSWEi2X9VNxjioiIqCUUDTfLli3DlClTMGvWLOTm5mL48OEYNWoUiouLbZZ///33odfrLV8lJSUIDw/H/fffL3PNWyYxIgR+KtfKzrmnL/eYIiIiagFFw817772HCRMmYOLEiejduzfmzZuH2NhYLFq0yGZ5nU6HqKgoy9fOnTtRUVGBxx9/XOaat0y0TovMsX1dKrvvpNHDtSEiIvJOioWb2tpa5OTkYOTIkVbHR44ciezsbJfu45NPPsHNN9+M+Ph4u2VqampgNBqtvpSUMTAOW2fc6LTcf7YVcaYUERFRCygWbsrKylBfX4/IyEir45GRkTh16pTT2+v1evz444+YOHGiw3KZmZnQ6XSWr9jY2CuqtxRcGUcjuDoxERFRiyg+oFilsh6EIoRodsyWJUuWoH379rj77rsdlpsxYwYMBoPlq6Sk5EqqKwlXWmRUAGdKERERtUCAUg8cEREBf3//Zq00paWlzVpzmhJC4NNPP8X48eOhVqsdltVoNNBoNFdcXym5spBfvzgdZ0oRERG1gGItN2q1GqmpqcjKyrI6npWVhbS0NIe33bhxI44cOYIJEyZ4sooekxgR4rRMbrGBY26IiIhaQLGWGwCYOnUqxo8fjwEDBmDo0KH48MMPUVxcjEmTJgFo6FI6ceIEli5danW7Tz75BIMHD0ZycrIS1b5ipcaLTssINIy5YesNERGRexQNNxkZGSgvL8fs2bOh1+uRnJyM1atXW2Y/6fX6ZmveGAwGLF++HO+//74SVZbE9sKzLpULVis+JIqIiKjNUQkhXF001ysYjUbodDoYDAaEhYUpUod31hzEAhe2YfjT4Di8eY9r6+IQERF5M3c+v9k0IDN39pf6cnsxx90QERG5ieFGZu7sL2XiWjdERERuY7iRWWJECFzcXgp+4Fo3RERE7mK4kVm0Tou597o2jsYEYNPhM56tEBERkZdRdLaUr8oYGIfaOhNe+W6f07LTl+cjRBOA1PgOnBZORETkArbcKMXFvikB4JkvcpE+dz2W7Sh2Wp6IiMjXMdwopL020K3yJgHMXLGXs6eIiIicYLhRyICEcLdvUy8EZ08RERE5wXCjkGidFjHtg9y6jb9KxdlTRERETjDcKKje5N7i0NNG9eKgYiIiIicYbhSiN1TjtLHGrdtc06W9ZypDRETkRRhuFFJQVulWeZWKC/oRERG5guFGIYkRIW6Vvzo6jF1SRERELmC4UUi0TosYnesDivedNHIaOBERkQsYbhTUPljtclkBYNUePQMOERGREww3bcgbqw5wpWIiIiInGG4UVFVb5/ZtuFIxERGRYww3Cjpz3r2p4GZcqZiIiMg+hhuF6A3VqKytb9FtVeC0cCIiInsYbhTi7jo3VlzcUZyIiMgXMdwoxN11bhoTAuyWIiIisoPhRiHROi3+MjyxRbf142rFREREdjHcKOjxYS0LNyN6dQYALN1agPeyDmF3SYWU1SIiImrTApSugC+L1mnh76dye3fwkrNVGJq53vLzBz8fwb39u+DdB66VuIZERERtD1tuFObv5/7o4MOlF5odW77rBFtwiIiIwHDjVXYWMtwQEREx3CjNvR4phwYkdJDuzoiIiNoohhsvcW//LkiJZbghIiJiuFGYkKDpJjkmjIOJiYiI/sBw4wUk7NkiIiJq8xhuvMBp40Wlq0BERNRqMNx4gbILtVi2o1jpahAREbUKDDcKc3cBP3tmrtgLvaFakvsiIiJqyxhuFKQ3VEOibIN6IbiZJhERERhuFFVQVinp/XEzTSIiIoYbRSVGhKAFuy/YNe2bPeyaIiIin8dwo6BonRaZY/vCXyVNwtn8exnS5q7n4GIiIvJpDDcKyxgYhy3TR+Dvd10tyf0J4Xhwsd5QjeyjZWzhISIirxWgdAWooQWne+d2kt1fvRDIKaxAeLtKJEaEIFqnBQAs21GMGSvyYRKAnwrIHNsXGQPjJHtcIiKi1oDhppVIjAiR7L5UAJ79MhcCl0PMdVd1sgQbADD90cJz3VWdLOGHiIjIG7BbqpWI1mkxJFGajS8FLm/JYA4xOUUVzaadc/o4ERF5I4abVuSJ67p55H4bQkxls5lZ/ioVp48TEZHXYbhpRW7qHYX+ce09ct//WHsYfaLDLD+rAMwZm8wuKSIi8joMN63MiqfSMev2JI/c996TRsv39/bvYhlMzBlURETkTRhuWqExKTEef4wQTcNY8mU7ipE+dz3GfbQN6Vwjh4iIvADDTSsk9bYM9ugN1TZnULEFh4iI2jKGm1YoMSIEEu7KYNPvp8+joKzyimdQsUuLiIhaG4abVihap8Xce/t69DG2HjuLELV/sxlUfgCC1a79WrTWLi0GLiIi38Zw00pdd1Unj7beCABVtSZkjrUOUSYA9yzMdhpUWmuXVmsNXEREJB+Gm1aqoKwSwnmxK5IQEWxz+wVXgooUXVpSa62Bi4iI5MVw00p5etxNalx7ROu0EMJ2hHIWVBIjQlrdooCtMXAREZH8FA83CxcuRGJiIoKCgpCamorNmzc7LF9TU4NZs2YhPj4eGo0G3bt3x6effipTbeUTrdPib3f28dj9awIaXno72QaA47E30TqtVZeWn0r5RQFD1P7NjikduIiISH6Khptly5ZhypQpmDVrFnJzczF8+HCMGjUKxcX2x0k88MAD+Pnnn/HJJ5/g0KFD+PLLL5GU5JlF75R2T7+uHrvvrcfOOu2uqao1OTzfuEvrnftTFN1h/IttRbh7YbbVMX+VSvHARURE8lN0V/D33nsPEyZMwMSJEwEA8+bNw08//YRFixYhMzOzWfk1a9Zg48aNOHbsGMLDwwEACQkJDh+jpqYGNTU1lp+NRqOD0q2MBwfdCAA5hRVoH6y2W+aHPSeQEBHsUjgID7F/Py2hN1SjoKwSiREhTh9fb6jGrG/3NrtcK54aipRYaTYjJSKitkOxlpva2lrk5ORg5MiRVsdHjhyJ7Oxsm7f5/vvvMWDAALz99tvo0qULrrrqKrz44ouorrbfApGZmQmdTmf5io2NlfR5yOXGpM6S3+ezX+bi4U+22T3/xbYSRWYcuTvjyd7ga2ctT0SNcQkBIu+hWMtNWVkZ6uvrERkZaXU8MjISp06dsnmbY8eOYcuWLQgKCsK3336LsrIyPPXUUzh79qzdcTczZszA1KlTLT8bjcY2E3BEo4/s9QdLPXD/zplnHF13VSfHLSgStTLZm/Hk6PETI0JsHudYG3LVsh3Flt87PxWQObavot2sRHRlFO2WAgCVynrKjRCi2TEzk8kElUqFzz//HDqdDkBD19Z9992HBQsWQKtt/uGn0Wig0Wikr7gMvs09oXQVAFyecdQ4XJi7jaTmaMaTvXATrdNCE+CHmjpTs+Nknztdf96sJYGaiFo3xcJNREQE/P39m7XSlJaWNmvNMYuOjkaXLl0swQYAevfuDSEEjh8/jp49e3q0znLSG6rx9//uV7oaAJrPOGr8X67UzFPgG9+1KzOe1P7Nw40jvv7B/uX2Ysz8Nh+CLRUtCtREzvj6e4zSFBtzo1arkZqaiqysLKvjWVlZSEtLs3mb9PR0nDx5EhcuXLAcO3z4MPz8/NC1q+dmFinB1huuUiYMS7B83/S/XLNjZy5ACtE6LcYNvvwh64kZT76+irHeUI2ZK/ItywD4+mKHrXHNJmrbfP09pjVQdCr41KlT8fHHH+PTTz/FgQMH8Pzzz6O4uBiTJk0C0DBe5pFHHrGUHzduHDp27IjHH38c+/fvx6ZNm/DSSy/hz3/+s80uqbbM1huuUj7cXIC0zIY/UHuh6++rDmDOqv0OPyBdHbCZ3iPC8v2W6SNw3VWdHN5Ob6hGncm1Vpu2uoqxs2tn67y929gagO3Lix02XbMJUH7NJmr97P19eet7TFuj6JibjIwMlJeXY/bs2dDr9UhOTsbq1asRHx8PANDr9VZr3rRr1w5ZWVl49tlnMWDAAHTs2BEPPPAA3njjDaWegseY33BnrtiLeiGaddXITQB4eXk+/n731Xbr8uHmAny8pQCZY/viuqs6YWfhWahUKqTGd8Cmw2csf/AqAE8MT8TjwxIBoFnTbeNM1/h2trpP/rXpKOb+eNDhYoSNtcUuCGeDXW2dB2D3NrYGYPt6S0XGwDi8vDwfABAfrvXZLjqpeWvXjKO/SW98j2mLVMLe+vteymg0QqfTwWAwICwsTOnqOKU3VKOwrArBaj/cszC71XRVOWIOJ6LJMVtVNx9v/Af1+bYizPp2L/DH8cbP2V+lwpbpIxCt0+JfG48i88eDdutROHd0s2N6QzXSMtc3G9Njvs/WRm+oRvrc9Xavga3zfgBg57oBDW++M1fko7C8ynJuztjkNv9mdqUSpq8CAPTo3A7rpl6vcG3c0xpCRNM6eOMHJtCyv8mWvMfI9ZpKVV85uPP5rfhsKXIsWqdFtE6L7KNlbSLYALZDjL2qm4+bm27PVV/C3NWXA4ujvaLmOgg2gO03h2idFhkDY/HVjhIADUGg8ZgiV1zpm447t3f2X6Ct8yag2QWvFwKLtxTi4y3HmpVvLW9ijq6LVG/0SocAW49/pXVqSYiQ+jo0rcPLtyXhrTUHvXIGmrO/SXOru7klUNWCrWkaX08VgKdu6I70nhEuv15SvceYz5vvR+m/H3cw3LQR5jE4bSXgtES9EJi7+qDD7jc/VcOeV//dc9JpN535v5Gmb/hDu3e0hBuhsu5Oc/ahsGxHMaavaNksI72hGos2HMVnW4uatVbZY2v2mEp1eQ0fW78Xtlpu/AB8tOWYze671vAm5egDWqoWgKYfGOauUbmev7vdh66wN74jKSoUlbX1Nj+EpG5RsVWHt348iKaj4Fp714yrbP3NNe3WbdzN+cLIXpZxg66uuN74egoACzYcxYINR116vVx5fRuHFHvPZ8/xCoz76DfLe9U9/brg29wTbaYlTvGNM8k15v8G/P9YA8hfpcJb9/bFXdfGKFwzaTkLLAMTwnHPwmy8ucpxqw2AZm/4tgbKNZ4xNH1FvtMB0TNaOMto2Y5ipGWux9I/go27t7eu9OVvbQ2Gzby3b7Nj6T0jXB6X5CpXByC6Mhja3gBMe+d2l1S4PPhRb6jGD7tPYHqTD4wPNxfINpPF1vOYsTz/igee2vuv++6F2Rj30TakZa63Gui/u6QC05c3r8eVDCK123rYhDvjulrz4FZ3Nw0+cvq81cypf2086vC5OZop6+x3xNlgZr2hGm+u2o+0RvXZdPhMs/eLabf1wtwfD1m9Vy3fdaJNDZJmy00bkjEwDtdd1QmFZVWWPZ+C1f74Lu+k0lWTzfaCsy0aWF0vBFbt0WP0NdF2ywgB/HzgNB4ekmB13PxfztnKWrcGCppvF6L2bwhFdurl6L9ZWzObBGB5Lg3dbJf/SwRgafo3H4vWabD59zK7z9tWnZ39h+nqf/+ulMspqrB7XQWE3Q9vc+vZy7cloW9XndNWClsad5dcKUfXzp3uQ3daN+y16JqDrDnEfbylAHdfG4MVuc3fK0wAFm8pxMzRvd16To1/v1UqWIVnf5UKkWEanDRctPzsateMVC1LnuxCafw39/6D1+KOlC52y36Xd9IqJJjHCTZ+bk1bUhxNIHH0O+Koi2nT4TOYvtz6fcj8+28ejwcAan8Vyi7UOH2fbe0tcQw3bYy5T9dsQEK4grWR35U0Pryx6gDeXHUAN/Sy/0H2Pyv3obKmHk9e3x1A864MewsMOhpM6eiNytl/syFqf7vPZc7qAzbf+NPnrrf6T0xvqGl6c5tc/VBxdUVfvaHa6s3UJBpm3IVoApAa38FynaY3CmaN7TlxDnemxDj88Lb3YWGrnvZIMQ3e2bVztVvZ3VlrTcd32GMSsBlszD7ecgyP/zH2zPx7vPHQGUso91MBf72+O9qHBGJQQjgOnjpv1T07tFs4so+etTyHOWOTsXRrkSXcNB3XZS94uPO7VVBWieraOhwrq8SghHB0Dguy3KezWZZXounq7B3bOV4B395L3nic4Vs/HrSq6/RRSXYnSzj6HbHXxRSs9nP6D1ZjH20ucPicnNWjNWC4aeM2HT6jdBXaFAHgl0OOr1nmjwdhvHgJDw+Jb9b33Zj5TbzpG2nTwZT23twcNWc3bi2yp/H4iqbHnX3Y2Xo8V7cgcGWqq95QjS+2Fdl87s98kQsVgOmjGq6Tvevz1uqD6NJei5dHJSFztWvdkDMahSdXF8JsPIbJGXsDgpteu+nL81FbZ8LNfSJtDjK1V4+WrK/TtOWuJUwCVgPOmwZyk2gY92Hvtr8dO2v5ecv0Edh0+Az2nTRajm06fMYSLhov39CSadTOWuOazta09bvc0lYdV1dnd7W7pl4Iq6UsGrek2Ao3fnD+ntH478X8HlNZW2+3zk1DismF/uvGLXGtdZAxw00bZn5TJekt+OUoKqqad0M1Nu22hoGCjaeW2xtMacuv02+0+WbgzvYW9ULgg5+PuPBojtn7UMkprEB4O+s3Llv/HaoAHCk9j4SIYJvN300JwOE0fqChu+SZL3KbLWbpqAXEfBtzeHJpEL4ASo0XrQ417nIxD8xtulbT9FFJePL67javnQDwynf78Op3+zD33r6WLmVHHhkS36LuMSnGPTQdcO5uC2nT59/0fckcLr7PO2n1ujcNHs4G67rSGues+7el3V72HvtI6XkAsPobcXXfPT84nhHajJ2FXZs+J7PX7rza0u1lqwVZhYb3sY2N/uFzZRcbc0ucueXV3LrXmgYZM9y0Ya1piwZv9MW2EoddSm+vOYQuHbTNzru6w1Wp8aLNcQzu7tv1swQ7xtta2E8FYPJXuc0+BGy1Qpg/zF/5bt8V16WpptfClW4YgYalAqbf7rzVRwC4e0G25efThovN1v1o2hpgCWcq4M6UGLu/JwINH/TmrgdH/r21CJ/9VuT0A6Lpf8qufJA6WwR04vBEfOhCV4Q9jQOJvaC8bv9pm4G28Xi4ZtOoYd1S0dL3vMbdx662UNq6zrYe+9Xv9lvqOvfehgVMyy847wpWAXhwUMOyFE1nNpZX2r69vVYocxehuYzZsTOV0BuqEa3T4p7+XbBil/VmzOa/E3eZW2ymr8h32EKmJM6WasNa0xYN3srR+2i9EMg+Ut7i+75rQTZe+H95VseUCqzROi26NQo45l8rezOYYsOl6Wu/pwWz/c5VXXKpnABQ5OJYmsaX/HxNnc2WGFsvS+bqgyg1XsRtyVF279skGj5AbL2uTd+AzV1r/91z0maLjK09i2wF02YcvE/Eh2stq4W3hB+Ae/tfHlD7w+7mY3tUAF51EHzfWHUAaZkNM4kaB7tRfaOsfrY3Bs2ZSTd0sxtQbLWU2LvOjt5uBRq6g9PnrsezX+Y5rZNKBXyxvaTZLEaBhtZHe5rWd/GWArszIZdkF1q2zhloZ3ymvd9tR8zBr+njtqZtXBhu2jDzfzl8EZXz5fYrm0a8fNcJfLTpKN5dexCfbS1EdW0dVDIHVvO01M5hlwdG2nrDMy8EaH7Tv1IqANNGJbl9O2fdWY1d6evjirsXZOPipXq751WA3Q+fD8b1a3bM3LXWdJr67pIKq+ns5sDpCkfDKPz9/Zp1y7nDBODrnMstAl9uL2n++HD+AWpuDXvnp8uvb7D6cufCsh3FVi1s7li44agloDT9h1AF4MiZ85ZAaR4IbzWG6o9utusdTEYwc/WfE3tj8pzdvGk3nbMWN4GGMWAlZ10PHc7eggrLqmyGvdY0yJjdUm1cxsA4JEWFWqbGkrxsXXJ39wF704XBsp407qNt8FMBXds7bkpWAfho8zFF9zhzlxx1FXA8SP0hG10PZrEd7F/zxs38mw6fsdkV5+p/yo7GHhmrL7U4NHjCgl8uD1zec/ycpQXL2TguM1t/f6LxQF1bXaorL7cqjRsUa/P276w5CGO1a62GntS0m84VAg0Bz1XJXXXIP26we94cYK67qhM2/jGpxZ3p/nLgP/1eICW2A+Y2WeDv3v5dLD+TvNrSh7+ZSQDFFY4Hprak+drZ/bWWJmxX9IkOdV6oCT87XQ9mlbX2W3yAhvDy4cZjdscYufqfctNF2horu1Dban9nD5++gLTM9Xjzv/tdrqO9cuYg6GzQ9hc2Wp6Ahqn0u4rPuVgLzwlW+1tamRwFEFepAHRpH2R17MLFOoe3+TH/FNIy11uCDdAwyLi1DCYG2HLjNWwt8Pfirb1QWFaFXUVn8c7aw0pXkaiZnKKzzgu1Evv1592+jbPlAFwZL7M4u9DuOVf/U16z95TTMq2VAPDf/CuvvzkIutra0Vo1Hs8jxb+vAsCJc9bdks6u0ez/7m92bP9JA/675yQGJYQjJbaDBDW7Mgw3XqTpAn/mnxMigvGPtYdb7X9n5Lv+4eOh+8Wvd7f4tgMT2lum+TrjbG0nX3BHShTWHTitdDUkZes9vXtECI4qEOAm/DvH8v0NvTohvUdHRYMOw40PiNZpMffevi73WRORPH69gtl2IepAAMC0b/ZIVR2vtjJPj5V5eqWr4XF1rWB9kA2HzmDDH4H63v5d8O4D18peB5UQvjUM1Wg0QqfTwWAwICwsTOnqyEpvqEZOYQXOVdfigP48vthWzLBD1Ib1iQrF/lPud5cRyem7p9MkacFx5/ObLTc+JFqnxZiUy91Wz9zYAzmFFXhrzUGUOBlMSkStD4MNtQXrD5bK3j3FcOPDzGFnTEoMfj5wChsOncHFS/VWa1YQERFdiQgnm4t6AsMNAQBu6h2Fm3o3rLIaGOCHL7bZng5JRETkjpv7RMr+mFznhpp59sae3NaBiIjaLLbcUDPmbR1mrtiLeiHgr1Jh0vXdEB6iRkJEMKprTVh34DS+yzvJAclEROTQv38twPTb+8j6mAw3ZJOtRQEbG5MSg5dHJVlmX/2wW49tBZcXZEuKaoeHh8SjbxcdSs5WQ6UCjp+rdrpDMxEReZd9J42yPyangpNkdpdUYGdhBQYkdLA7Ml5vqMa6/aex94QBVbV16BQahPQeHRGsDsRP+/RYkl1kKTsgvj2SokNRfqEW8R2D0bdLe6zO12OVBKuVEhGRPN65ry/uH3DlWzO48/nNcEOtit5Qbbe1qGmZYLUfqmpNCFb7oeRsNc5V1wIADNWXcFBvxPFz1Q37pnTQIimq4bUuLq/CsTMXcLayFkEBfjhfUwdtYAAOl16wdLH166qDRu2H3SUGVF8yyfCsiYi8U1y4Fpum3SjJfXGdG2qzmm4h4WqZK11DwV6o2l1Sge9yT6Kytg5xHYOR0DEE/eM7oNR4EesPlKJTmAZ9u+iw+fcyrNh1HMcabQQ5IL49RiR1BgAc1BtxvqYOXTtoofb3R7dOIbipdySidVpLi5dJCBSfrUKASoV9egPCggIRqg1AwZlKRLTToF98B+woKEf+cSO6dWqHBwZ2xc6CChRVVKJTqAaX6kzIPloO48XLmzHGhwcBAgjWBKC6th4X6+pRbxKoNwmYTICACR3bBaFjOzXOGGtgvHgJ9SYTAv39UVl7CQIqtNeqcaHmEi7VNQS9unrA0XaPAQDgB9TZyYUBAOoAqP8ow/hI5H06BAVg5pjekrTYtARbbogk5ErLky/UwVyPnMIKqFRA//gOTuvSuEXOPE7L2e0aP1cADr83t/Q1vS6NV+7uEKxu9phNH8NZ2cbPuXE9XH0e5nJNWygdnbN3zczdwAVllejWKcQyBs5c/64dtJb7dnSdbD3enuMGbDxUCuPFOtw/oCuG9ezU7JpX1V5CYVkVBiR0QOewIKzbfxplF2pwY1Jnyz8k5nAfpg3A8bPVUAf6QacNtNTPXN/jFVU4c74GQ7p1hDYwAEVnK1F+odbyvOzVufHrplLB8pyrai/h19/LARUsXeO2nvvXO4uxdt9pJEWFon2w2vJcGr9e5udgnnDR+HEa32fT3wd7v3uNu+8BoG9XHW7qHYlS40Wrrn97fzPmf77UgQ0TomvrTOjaQQtjdZ3Vbe09duPjQYF+ltfQ/JrZetygQD/sKTGgU5jG8o+b1Ngt5QDDDRERUdvjzuc317khIiIir8JwQ0RERF6F4YaIiIi8CsMNEREReRWGGyIiIvIqDDdERETkVRhuiIiIyKsw3BAREZFXYbghIiIir8JwQ0RERF6F4YaIiIi8is/tCm7eSstoNCpcEyIiInKV+XPblS0xfS7cnD9/HgAQGxurcE2IiIjIXefPn4dOp3NYxud2BTeZTDh58iRCQ0OhUqkkvW+j0YjY2FiUlJRwx3EF8Pori9dfWbz+yuNr4FlCCJw/fx4xMTHw83M8qsbnWm78/PzQtWtXjz5GWFgYf7EVxOuvLF5/ZfH6K4+vgec4a7Ex44BiIiIi8ioMN0RERORVGG4kpNFo8Le//Q0ajUbpqvgkXn9l8fori9dfeXwNWg+fG1BMRERE3o0tN0RERORVGG6IiIjIqzDcEBERkVdhuCEiIiKvwnAjkYULFyIxMRFBQUFITU3F5s2bla5Sm5OZmYmBAwciNDQUnTt3xt13341Dhw5ZlRFC4LXXXkNMTAy0Wi1uuOEG7Nu3z6pMTU0Nnn32WURERCAkJAR33nknjh8/blWmoqIC48ePh06ng06nw/jx43Hu3DlPP8U2JTMzEyqVClOmTLEc4/X3vBMnTuDhhx9Gx44dERwcjGuvvRY5OTmW83wNPKeurg7/8z//g8TERGi1WnTr1g2zZ8+GyWSylOH1byMEXbGvvvpKBAYGio8++kjs379fPPfccyIkJEQUFRUpXbU25dZbbxWLFy8We/fuFXl5eWL06NEiLi5OXLhwwVJm7ty5IjQ0VCxfvlzk5+eLjIwMER0dLYxGo6XMpEmTRJcuXURWVpbYtWuXGDFihEhJSRF1dXWWMrfddptITk4W2dnZIjs7WyQnJ4sxY8bI+nxbs+3bt4uEhARxzTXXiOeee85ynNffs86ePSvi4+PFY489JrZt2yYKCgrEunXrxJEjRyxl+Bp4zhtvvCE6duwo/vvf/4qCggLx9ddfi3bt2ol58+ZZyvD6tw0MNxIYNGiQmDRpktWxpKQkMX36dIVq5B1KS0sFALFx40YhhBAmk0lERUWJuXPnWspcvHhR6HQ68c9//lMIIcS5c+dEYGCg+OqrryxlTpw4Ifz8/MSaNWuEEELs379fABC//fabpczWrVsFAHHw4EE5nlqrdv78edGzZ0+RlZUlrr/+eku44fX3vJdfflkMGzbM7nm+Bp41evRo8ec//9nq2NixY8XDDz8shOD1b0vYLXWFamtrkZOTg5EjR1odHzlyJLKzsxWqlXcwGAwAgPDwcABAQUEBTp06ZXWtNRoNrr/+esu1zsnJwaVLl6zKxMTEIDk52VJm69at0Ol0GDx4sKXMkCFDoNPp+JoBePrppzF69GjcfPPNVsd5/T3v+++/x4ABA3D//fejc+fO6NevHz766CPLeb4GnjVs2DD8/PPPOHz4MABg9+7d2LJlC26//XYAvP5tic9tnCm1srIy1NfXIzIy0up4ZGQkTp06pVCt2j4hBKZOnYphw4YhOTkZACzX09a1LioqspRRq9Xo0KFDszLm2586dQqdO3du9pidO3f2+dfsq6++wq5du7Bjx45m53j9Pe/YsWNYtGgRpk6dipkzZ2L79u2YPHkyNBoNHnnkEb4GHvbyyy/DYDAgKSkJ/v7+qK+vx5tvvomHHnoIAP8G2hKGG4moVCqrn4UQzY6R65555hns2bMHW7ZsaXauJde6aRlb5X39NSspKcFzzz2HtWvXIigoyG45Xn/PMZlMGDBgAObMmQMA6NevH/bt24dFixbhkUcesZTja+AZy5Ytw3/+8x988cUXuPrqq5GXl4cpU6YgJiYGjz76qKUcr3/rx26pKxQREQF/f/9mabu0tLRZuifXPPvss/j+++/xyy+/oGvXrpbjUVFRAODwWkdFRaG2thYVFRUOy5w+fbrZ4545c8anX7OcnByUlpYiNTUVAQEBCAgIwMaNG/HBBx8gICDAcm14/T0nOjoaffr0sTrWu3dvFBcXA+DfgKe99NJLmD59Oh588EH07dsX48ePx/PPP4/MzEwAvP5tCcPNFVKr1UhNTUVWVpbV8aysLKSlpSlUq7ZJCIFnnnkGK1aswPr165GYmGh1PjExEVFRUVbXura2Fhs3brRc69TUVAQGBlqV0ev12Lt3r6XM0KFDYTAYsH37dkuZbdu2wWAw+PRrdtNNNyE/Px95eXmWrwEDBuBPf/oT8vLy0K1bN15/D0tPT2+2/MHhw4cRHx8PgH8DnlZVVQU/P+uPRX9/f8tUcF7/NkSBQcxexzwV/JNPPhH79+8XU6ZMESEhIaKwsFDpqrUpf/3rX4VOpxMbNmwQer3e8lVVVWUpM3fuXKHT6cSKFStEfn6+eOihh2xOw+zatatYt26d2LVrl7jxxhttTsO85pprxNatW8XWrVtF3759OQ3ThsazpYTg9fe07du3i4CAAPHmm2+K33//XXz++eciODhY/Oc//7GU4WvgOY8++qjo0qWLZSr4ihUrREREhJg2bZqlDK9/28BwI5EFCxaI+Ph4oVarRf/+/S3Tl8l1AGx+LV682FLGZDKJv/3tbyIqKkpoNBpx3XXXifz8fKv7qa6uFs8884wIDw8XWq1WjBkzRhQXF1uVKS8vF3/6059EaGioCA0NFX/6059ERUWFDM+ybWkabnj9Pe+HH34QycnJQqPRiKSkJPHhhx9anedr4DlGo1E899xzIi4uTgQFBYlu3bqJWbNmiZqaGksZXv+2QSWEEEq2HBERERFJiWNuiIiIyKsw3BAREZFXYbghIiIir8JwQ0RERF6F4YaIiIi8CsMNEREReRWGGyIiIvIqDDdERETkVRhuiMjrbdiwASqVCufOnVO6KkQkA4YbIiIi8ioMN0RERORVGG6IyOOEEHj77bfRrVs3aLVapKSk4JtvvgFwucto1apVSElJQVBQEAYPHoz8/Hyr+1i+fDmuvvpqaDQaJCQk4N1337U6X1NTg2nTpiE2NhYajQY9e/bEJ598YlUmJycHAwYMQHBwMNLS0nDo0CGr8z/88ANSU1MRFBSEbt264fXXX0ddXZ3l/GuvvYa4uDhoNBrExMRg8uTJUl4mIpKKwht3EpEPmDlzpkhKShJr1qwRR48eFYsXLxYajUZs2LBB/PLLLwKA6N27t1i7dq3Ys2ePGDNmjEhISBC1tbVCCCF27twp/Pz8xOzZs8WhQ4fE4sWLhVartdox/oEHHhCxsbFixYoV4ujRo2LdunXiq6++EkIIy2MMHjxYbNiwQezbt08MHz5cpKWlWW6/Zs0aERYWJpYsWSKOHj0q1q5dKxISEsRrr70mhBDi66+/FmFhYWL16tWiqKhIbNu2rdmO3UTUOjDcEJFHXbhwQQQFBYns7Gyr4xMmTBAPPfSQJXiYg4gQQpSXlwutViuWLVsmhBBi3Lhx4pZbbrG6/UsvvST69OkjhBDi0KFDAoDIysqyWQfzY6xbt85ybNWqVQKAqK6uFkIIMXz4cDFnzhyr23322WciOjpaCCHEu+++K6666ipL4CKi1ovdUkTkUfv378fFixdxyy23oF27dpavpUuX4ujRo5ZyQ4cOtXwfHh6OXr164cCBAwCAAwcOID093ep+09PT8fvvv6O+vh55eXnw9/fH9ddf77Au11xzjeX76OhoAEBpaSmAhi6r2bNnW9XxiSeegF6vR1VVFe6//35UV1ejW7dueOKJJ/Dtt99adVkRUesRoHQFiMi7mUwmAMCqVavQpUsXq3MajcYq4DSlUqkANIzZMX9vJoSwfK/Val2qS2BgYLP7NtfPZDLh9ddfx9ixY5vdLigoCLGxsTh06BCysrKwbt06PPXUU3jnnXewceNGq/slIuUx3BCRR/Xp0wcajQbFxcU2W1bM4ea3335DXFwcAKCiogKHDx9GUlKS5T62bNlidbvs7GxcddVV8Pf3R9++fWEymbBx40bcfPPNLapn//79cejQIfTo0cNuGa1WizvvvBN33nknnn76aSQlJSE/Px/9+/dv0WMSkWcw3BCRR4WGhuLFF1/E888/D5PJhGHDhsFoNCI7Oxvt2rVDfHw8AGD27Nno2LEjIiMjMWvWLERERODuu+8GALzwwgsYOHAg/v73vyMjIwNbt27F/PnzsXDhQgBAQkICHn30Ufz5z3/GBx98gJSUFBQVFaG0tBQPPPCAS/V89dVXMWbMGMTGxuL++++Hn58f9uzZg/z8fLzxxhtYsmQJ6uvrMXjwYAQHB+Ozzz6DVqu11J+IWhGlB/0QkfczmUzi/fffF7169RKBgYGiU6dO4tZbbxUbN260DPb94YcfxNVXXy3UarUYOHCgyMvLs7qPb775RvTp00cEBgaKuLg48c4771idr66uFs8//7yIjo4WarVa9OjRQ3z66adCiMsDiisqKizlc3NzBQBRUFBgObZmzRqRlpYmtFqtCAsLE4MGDbLMiPr222/F4MGDRVhYmAgJCRFDhgyxGqBMRK2HSohGHddERDLbsGEDRowYgYqKCrRv317p6hCRF+BsKSIiIvIqDDdERETkVdgtRURERF6FLTdERETkVRhuiIiIyKsw3BAREZFXYbghIiIir8JwQ0RERF6F4YaIiIi8CsMNEREReRWGGyIiIvIq/x/oAAKhvRPL0gAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "正确率:0.9991666666666666\n"
     ]
    }
   ],
   "source": [
    "#1、导入包和定义参数\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "import torch.utils.data as tud\n",
    "import matplotlib.pyplot as plt\n",
    "from tqdm import trange\n",
    "EPOCHES = 10\n",
    "USE_CUDA = torch.cuda.is_available()\n",
    "from sklearn.metrics import accuracy_score\n",
    "\n",
    "#2、定义数据，这里是自己建立\n",
    "torch.manual_seed(1)\n",
    "n_data = torch.ones(10000, 2)     #内容为一个 100 行 2 列 的 tensor\n",
    "x0 = torch.normal(3*n_data, 1)  \n",
    "y0 = torch.zeros(10000)  \n",
    "x1 = torch.normal(-2*n_data, 1)  \n",
    "y1 = torch.ones(10000)\n",
    "x2 = torch.normal(10*n_data, 1)\n",
    "y2 = torch.ones(10000)*2\n",
    "x = torch.cat((x0, x1,x2)).type(torch.FloatTensor)  \n",
    "y = torch.cat((y0, y1,y2)).type(torch.LongTensor) \n",
    "\n",
    "torch_dataset = tud.TensorDataset(x,y)\n",
    "loader = tud.DataLoader(\n",
    "    dataset=torch_dataset,\n",
    "    batch_size=32,\n",
    "    shuffle=True,\n",
    ")\n",
    "\n",
    "if USE_CUDA:\n",
    "    x = x.cuda()\n",
    "    y = y.cuda()\n",
    "    \n",
    "#3、定义网络和模型 两层的网络\n",
    "class Net(torch.nn.Module):  \n",
    "    def __init__(self, n_feature, n_hidden, n_output):  \n",
    "        super(Net, self).__init__()  \n",
    "        self.n_hidden = nn.Linear(n_feature, n_hidden) \n",
    "        self.dropout = nn.Dropout(0.2)\n",
    "        self.out = nn.Linear(n_hidden, n_output)  \n",
    "    def forward(self, x_layer):  \n",
    "        x_layer = torch.relu(self.n_hidden(x_layer))  \n",
    "        x_layer = self.dropout(x_layer)\n",
    "        x_layer = self.out(x_layer) \n",
    "        x_layer = F.softmax(x_layer)  \n",
    "        return x_layer  \n",
    "        # 定义权值初始化\n",
    "    def initialize_weights(self):\n",
    "        for m in self.modules():\n",
    "            if isinstance(m, nn.Conv2d):\n",
    "                torch.nn.init.xavier_normal_(m.weight.data)\n",
    "                if m.bias is not None:\n",
    "                    m.bias.data.zero_()\n",
    "            elif isinstance(m, nn.BatchNorm2d):\n",
    "                m.weight.data.fill_(1)\n",
    "                m.bias.data.zero_()\n",
    "            elif isinstance(m, nn.Linear):\n",
    "                torch.nn.init.normal_(m.weight.data, 0, 0.001)\n",
    "                m.bias.data.zero_()\n",
    "                \n",
    "model = Net(n_feature=2, n_hidden=20, n_output=3)  \n",
    "model.initialize_weights()    # 初始化权值\n",
    "\n",
    "if USE_CUDA:\n",
    "    model = model.cuda()\n",
    "\n",
    "optimizer = torch.optim.SGD(model.parameters(), lr=0.1)  \n",
    "scheduler = torch.optim.lr_scheduler.StepLR(optimizer, step_size=5, gamma=0.1)     # 设置学习率下降策略\n",
    "loss_func =  nn.CrossEntropyLoss() \n",
    "\n",
    "# 4、 完成训练和迭代\n",
    "from datetime import  datetime\n",
    "start_time = datetime.now()\n",
    "\n",
    "losses = []\n",
    "for i in range(EPOCHES):\n",
    "    for step,(batch_x,batch_y) in enumerate(loader):\n",
    "        x_b = batch_x\n",
    "        y_b = batch_y\n",
    "        if USE_CUDA:\n",
    "            x_b = x_b.cuda()\n",
    "            y_b = y_b.cuda()\n",
    "        out = model(x_b)  \n",
    "    # print(out.shape, y.shape)  \n",
    "        loss = loss_func(out, y_b) \n",
    "        #losses.append(loss)\n",
    "        losses.append(loss.cpu().detach().numpy())   # 新版本需求\n",
    "        optimizer.zero_grad()  \n",
    "        loss.backward()  \n",
    "        optimizer.step() \n",
    "    scheduler.step()  # 更新学习率\n",
    "    print(scheduler.get_last_lr())\n",
    "\n",
    "end_time = datetime.now()       \n",
    "msecs = (end_time - start_time) \n",
    "print(f\"time is {msecs} s\" )\n",
    "\n",
    "#5、其它--打印损失\n",
    "x1 = range(0,len(losses))\n",
    "plt.plot(x1,losses,\".-\")\n",
    "plt.xlabel(\"epoches\")\n",
    "plt.ylabel(\"test loss\")\n",
    "plt.show()\n",
    "\n",
    "#5、其它--结果打印 及正确率\n",
    "train_result = model(x)  \n",
    "# print(train_result.shape)  \n",
    "train_predict = torch.max(train_result, 1)[1]  \n",
    "x_  = x.data.cpu().numpy()\n",
    "plt.scatter(x_[:, 0],x_[:, 1], c=train_predict.cpu().data.numpy(), s=100, lw=0, cmap='RdYlGn')  \n",
    "plt.show() \n",
    "\n",
    "acc = accuracy_score(train_predict.cpu().numpy(),y.cpu().numpy())\n",
    "print(f\"正确率:{acc}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "86385458-db88-436b-9344-d3565d88fc38",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
